import * as C from "/Frame/ControllerBase";
import { test1 } from "/App/middleware/index";
import * as vIndex from '/App/validate/index';
// import { Decorate as vIndex, Validate } from '/App/validate/index';

import mindex from "/App/model/index";

const CONFIG = new G.JsonConfig('./Config/testConfig.json', JSON.stringify({
    name: 'yoyo'
}));
 
export default class index implements C.ControllerBase {
    _middleware = [test1('666')];
    _method = [C.Method.GET, C.Method.POST];


    async index(ctx: C.Context, params: C.Params) {
        return ctx.view({ yoyo: '你好YoyoThink' });
    }

    @vIndex.Decorate('name', 'query')
    async test(ctx: C.Context, params: C.Params) {
        // console.log('--', ctx.request.body, '===', ctx.request.query, '-=-=-', ctx.request.files);
        const res = await ctx.upload('file', true, []);
        console.log('上传状态', res);
        // throw [7000,'你没有登录']
        return ctx.json(ctx.request.body);
    }

    async test3(ctx: C.Context, params: C.Params) {
        // if(!await redis.get('test')){
        //    await redis.set('test', '123',{
        //         EX: 10
        //     });
        // }
        // logger.info(await redis.get('test'));
        // return ctx.json(process.pid);
        G.sendMail('1294858802@qq.com', '验证码', '验证码 5623 有效期2分钟');
        return 'asad';
    }

    async test2(ctx: C.Context, params: C.Params) {
        // logger.info(ctx.reqPath,'--path:',ctx.path);
        /**
         * ctx.reqPath 只有动态路由才有
         * { controller: 'index', apiName: 'test2' }
         */

        return ctx.json((await mindex.yoyo()).data);
        // ctx.throw(506,'配置问题');
        throw [7000, '你没有登录'];
        return '大哥哥';
        // const data = [
        //     ['ID', 'Name', 'Age'],
        //     [1, 'John Doe', 30],
        //     [2, 'Jane Doe', 28]
        // ];
        // const data2 = [
        //     ['ID', 'Name', 'Age'],
        //     [1, 'Yoyo', 299],
        //     [2, '傻逼', 28]
        // ];

        // return ctx.outXlsx('测试', data, data2);
        // return ctx.media(`D:\\MyCode\\Node\\other\\yoyo-think\\Public\\upload\\2024-11-20\\逃离塔克夫2.png`);
    }
}